package config

import (
	"gopkg.in/ini.v1"
)

type BaseConfig struct {
	Env            string `ini:"env"`
	HttpListenPort string `ini:"http_listen_port"`
	DBDriver       string `ini:"db_driver"`
	DBHost         string `ini:"db_host"`
	DBPort         string `ini:"db_port"`
	DBUser         string `ini:"db_user"`
	DBPass         string `ini:"db_pass"`
	DBName         string `ini:"db_name"`
	DBDebug        bool   `ini:"db_debug"`
	RedisHost      string `ini:"redis_host"`
	RedisPort      string `ini:"redis_port"`
	RedisDb		   int    `ini:"redis_db"`
	RedisAuth      string `ini:"redis_auth"`
	JwtSecret      string `ini:"jwt_secret"`
	JwtExpireTime  int64  `ini:"jwt_expire_time"`
	LogDir         string `ini:"log_dir"`
	LogLevel       string `ini:"log_level"`
	RuntimePath    string `ini:"runtime_path"`
	Page           int    `ini:"page"`
	Size           int    `ini:"size"`
}

var Config *BaseConfig = &BaseConfig{}

func Init(configFile string) {

	conf, err := ini.Load(configFile)
	if err != nil {
		panic(err)
	}

	conf.BlockMode = false

	err = conf.MapTo(&Config)
	if err != nil {
		panic(err)
	}

}
